package live.api.impl;

import java.sql.SQLException;
import java.util.Map;

import live.common.DBHelper;
import live.common.Format;

/**
 * 金额支付充值请求、回复信息记录
 * 2011-05-10
 */
public class PaySendReqRes {
	private static DBHelper dh = null;
	//发送请求信息
	public static int insertSendRequest(Map<String, Object> map){
		dh = DBHelper.getInstance();
		String sql = "{call addPayRequest(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
		Object[] args = new Object[17];
		int count=0;
		try {
			args[0]=map.get("service_id");
			args[1]=map.get("req_org_cd");
			args[2]=map.get("req_trans_tm");
			args[3]=map.get("req_trans_seq");
			args[4]=map.get("order_desc");
			args[5]=map.get("order_id");
			args[6]=map.get("seller_id");
			args[7]=map.get("sub_order_flag");
			args[8]=map.get("sub_order_num");
			args[9]=Format.getInstance().isNotNullOrEmpty(map.get("sub_order_dtl"))?map.get("sub_order_dtl"):"NULL";
			args[10]=map.get("tot_trans_amt");
			args[11]=map.get("buyer_id");
			args[12]=map.get("valid_date");
			args[13]=map.get("notify_url");
			args[14]=Format.getInstance().isNotNullOrEmpty(map.get("return_url"))?map.get("return_url"):"NULL";
			args[15]=map.get("sign");
			args[16]=map.get("sign_type");
			count=dh.update(sql, args);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
		dh.close();
		return count;
		}
	}
	
	//返回通知信息
	public static void insertSendRespnse(Map<String, Object> map){
		dh = DBHelper.getInstance();
		String sql = "{call addPayResponse(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
		Object[] args = new Object[18];
		try {
			args[0]=map.get("service_id");
			args[1]=map.get("req_org_cd");
			args[2]=map.get("req_trans_tm");
			args[3]=map.get("req_trans_seq");
			args[4]=map.get("order_id");
			args[5]=map.get("seller_id");
			args[6]=map.get("sub_order_flag");
			args[7]=map.get("sub_order_num");
			args[8]=map.get("sub_order_dtl");
			args[9]=map.get("tot_trans_amt");
			args[10]=map.get("buyer_id");
			args[11]=map.get("notify_url");
			args[12]=Format.getInstance().isNotNullOrEmpty(map.get("return_url"))?map.get("return_url"):"NULL";
			args[13]=map.get("rsp_cd");
			args[14]=Format.getInstance().isNotNullOrEmpty(map.get("rsp_desc"))?map.get("rsp_desc"):"NULL";;
			args[15]=map.get("sign");
			args[16]=map.get("sign_type");
			args[17]=map.get("ori_req_trans_seq");
			dh.update(sql, args);
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		finally{
			dh.close();
		}
	}
	
	public static Map returnRequestPost(String serviceId,String original_trans_seq,String orderId){
		dh = DBHelper.getInstance();
		Map reMap = null;
		try {
			reMap = (Map)dh.queryRecordMap("SELECT * FROM PayRequest WITH(NOLOCK) WHERE 1=1 AND service_id=? and req_trans_seq=? and order_id=?", new Object[]{serviceId,original_trans_seq,orderId});
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			dh.close();
		}
		return reMap;
	}
	
}
